package com.mmd.manage.service;

import com.mmd.common.bean.TracesVo;
import com.mmd.common.entity.MmdLogistics;
import com.mmd.common.entity.MmdOrderProduct;
import com.mmd.manage.vo.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 订单
 */
public interface OrderService {
    boolean addOrder(OrderEo eo);

    MyOrderBaseVo myOrderList(MyOrderQueryEo eo);

    PageData<MyOrderQueryVo> orderList(MyOrderQueryEo eo);

    void batchDeleteOrder(List<String> orderNoList);

    boolean backLogistics(BackLogisticsEo eo);

    boolean backBox(OrderBoxDetailVo eo);

    OrderBoxDetailVo getBoxDetail(String orderNo);

    OrderBoxDetailVo refreshBoxPrice(OrderBoxDetailVo eo);

    List<MmdLogistics> getLogisticsList();

    OrderVo getOrderDetail(String orderNo);

    List<MmdOrderDetailVo> getCustomOrderBoxDetail(String orderNo);

    boolean auditOrder(String orderNo, Integer flag);

    boolean modifyOrder(OrderEo eo);

    TracesVo getOrderLogisticsDetail(String orderNo);

    void pullLogisticsInfo();

    boolean mergeOrder(String orderNos);

    boolean splitOrder(String pkgNos, String orderNo);

    boolean chooseSupplier(String orderNo, String supplierCode, String routeNo);

    QuerySuOrderListVo supplierOrderList(SuOrderQueryEo eo);

    void exportOrder(SuOrderQueryEo eo, HttpServletRequest request, HttpServletResponse response);

    void exportAdminOrder(MyOrderQueryEo eo, HttpServletRequest request, HttpServletResponse response);

    boolean storage(String batchNo);

    boolean batchStorage(String batchNos);

    void downloadTrackingTemplate(HttpServletRequest request, HttpServletResponse response);

    void importTrackingFile(List<ImportTrackingBean> list);

    SuOrderBoxDetailVo getSuBoxDetail(String batchNo);

    boolean backSuBox(SuOrderBoxDetailVo eo);

    SuOrderBoxDetailVo refreshSuBoxPrice(SuOrderBoxDetailVo eo);

    void adminModifyProduct(List<MmdOrderProduct> mmdOrderProductList);
}
